1
สเปกตรัมของการควบคุมการไหล: จากลำดับขั้นตอนไปสู่สถานะที่ผิดปกติ
AI031Lesson 8
00:00

การไหลของคำสั่งมาตรฐานคือการดำเนินการที่คาดเดาได้: ตัวชี้โปรแกรมจะเคลื่อนที่จากตำแหน่ง $a_k$ ไปยัง $a_{k+1}$ ตามตรรกะแบบลำดับหรือการกระโดดโดยตรง อย่างไรก็ตาม, การควบคุมการไหลแบบผิดปกติ (ECF) หมายถึงการเปลี่ยนแปลงที่เกิดขึ้นอย่างฉับพลันซึ่งไม่ได้อยู่ในสายการไหลปกติ

1. โมเดลทางคณิตศาสตร์

การประมวลผลของโปรเซสเซอร์เป็นลำดับ $a_0, a_1, \dots, a_{n-1}$ โดยที่แต่ละ $a_k$ สอดคล้องกับคำสั่ง $I_k$ ECF จะทำลายห่วงโซ่นี้เมื่อเกิดการเปลี่ยนแปลงในสถานะของโปรเซสเซอร์— เหตุการณ์—ทำให้เกิดการกระโดดไปยังแฮนเดอร์เฉพาะที่ไม่อยู่ในเส้นทางโค้ดของแอปพลิเคชันโดยตรง

2. ระดับการนำไปใช้งาน

ECF ช่วยลดช่องว่างระหว่างฮาร์ดแวร์และซอฟต์แวร์ มีตั้งแต่ระดับฮาร์ดแวร์ ข้อผิดพลาด (ความผิดพลาด, การรบกวน) ถึงระดับระบบปฏิบัติการ การสลับบริบท และ สัญญาณ

รูปที่ 8.1: โครงสร้างของข้อผิดพลาดการไหลปกติ (ถูกข้าม)การไหลแบบลำดับ (Iₖ)เหตุการณ์!แฮนเดอร์ข้อผิดพลาดการกลับคืนแบบเลือกได้ (Iₖ₊₁)

3. ความจริงที่แท้จริงแบบฉับพลัน

ไม่ว่าจะเป็นผู้ใช้กด Ctrl+C หรือการเรียกใช้ระบบขอเข้าถึงดิสก์ ข้อผิดพลาดในการควบคุมการไหลบังคับให้หน่วยประมวลผลหลัก (CPU) กระโดดไปยังโลกที่ต่างออกไป—เคอร์เนล—เพื่อให้ระบบสามารถตอบสนองต่อการเปลี่ยนแปลงสถานะแบบไดนามิกได้

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>